package Window; import org.eclipse.swt.widgets.Dialog; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.events.KeyEvent; import org.eclipse.swt.events.KeyListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; public class CategoryNameInputDialog extends Dialog { protected String result; protected Shell shell; private Text text; /** * Create the dialog. * @param parent * @param style */ public CategoryNameInputDialog(Shell parent, int style) { super(parent, style); setText("Add New Category"); } /** * Open the dialog. * @return the result */ public Object open() { createContents(); shell.open(); shell.layout(); Display display = getParent().getDisplay(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } return result; } /** * Create contents of the dialog. */ private void createContents() { shell = new Shell(getParent(), getStyle()); shell.setSize(231, 99); shell.setText(getText()); Label lblUrl = new Label(shell, SWT.NONE); lblUrl.setBounds(10, 10, 95, 20); lblUrl.setText("Category Name:"); text = new Text(shell, SWT.BORDER); text.setBounds(105, 7, 100, 21); Button btnNewButton = new Button(shell, SWT.NONE); btnNewButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent arg0) { result = text.getText(); shell.dispose(); } }); btnNewButton.setBounds(56, 34, 75, 25); btnNewButton.setText("Create"); Button btnNewButton_1 = new Button(shell, SWT.NONE); btnNewButton_1.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent arg0) { result=null; shell.dispose(); } }); btnNewButton_1.setBounds(137, 34, 75, 25); btnNewButton_1.setText("Cancel"); text.addKeyListener(new KeyListener() { @Override public void keyReleased(KeyEvent arg0) { switch(arg0.keyCode){ case SWT.KEYPAD_CR: case SWT.CR: result = text.getText(); shell.dispose(); break; case SWT.ESC: result=null; shell.dispose(); break; } } @Override public void keyPressed(KeyEvent arg0) { // TODO Auto-generated method stub } }); } }